namespace zq {
template <class K> class BSTree_Node {
public:
  // 构造函数
  BSTree_Node(const K &k) : _left(nullptr), _right(nullptr), _key(k) {}
  K _key; // 结点的值
  BSTree_Node<K> *_left;
  BSTree_Node<K> *_right;
};

template <class K> class BSTree {
  typedef BSTree_Node<K> Node;

public:
  bool insert(const K &k);
  bool find(const K &k);
  void InOrder();
  void _InOrder(Node *root);
  bool erase(const K &k);

private:
  Node *_root = nullptr; // 根节点
};
} // namespace zq
